<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PinCRT: File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">PinCRT
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">File</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__OS__FILE__UNIQUE__ID.html">_OS_FILE_UNIQUE_ID</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__OS__STRUCT__STAT.html">_OS_STRUCT_STAT</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaba27a650028099cf71b43ff091ac2ca2"><td class="memItemLeft" align="right" valign="top">typedef INT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gaba27a650028099cf71b43ff091ac2ca2">OS_FILE_PERMISSION_TYPE</a></td></tr>
<tr class="separator:gaba27a650028099cf71b43ff091ac2ca2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf388a0f1cc1446b1e1ffca6907a2ffca"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__OS__FILE__UNIQUE__ID.html">_OS_FILE_UNIQUE_ID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gaf388a0f1cc1446b1e1ffca6907a2ffca">OS_FILE_UNIQUE_ID</a></td></tr>
<tr class="separator:gaf388a0f1cc1446b1e1ffca6907a2ffca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga111c9133a6edb2e9975e3a68ee2f6c2b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__OS__STRUCT__STAT.html">_OS_STRUCT_STAT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga111c9133a6edb2e9975e3a68ee2f6c2b">OS_STRUCT_STAT</a></td></tr>
<tr class="separator:ga111c9133a6edb2e9975e3a68ee2f6c2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga125af12a5b69613338937bddae2383dc"><td class="memItemLeft" align="right" valign="top">typedef UINT64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga125af12a5b69613338937bddae2383dc">OS_PROCESS_WAITABLE_PROCESS</a></td></tr>
<tr class="separator:ga125af12a5b69613338937bddae2383dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaf79cb66b43257af42f5e75915c9d3b46"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gaf79cb66b43257af42f5e75915c9d3b46">OS_FILE_OPEN_TYPE</a> { <br />
&#160;&#160;<b>OS_FILE_OPEN_TYPE_READ</b> = (1 &lt;&lt; 0), 
<br />
&#160;&#160;<b>OS_FILE_OPEN_TYPE_WRITE</b> = (1 &lt;&lt; 1), 
<br />
&#160;&#160;<b>OS_FILE_OPEN_TYPE_EXECUTE</b> = (1 &lt;&lt; 2), 
<br />
&#160;&#160;<b>OS_FILE_OPEN_TYPE_APPEND</b> = (1 &lt;&lt; 3), 
<br />
&#160;&#160;<b>OS_FILE_OPEN_TYPE_TRUNCATE</b> = (1 &lt;&lt; 4), 
<br />
&#160;&#160;<b>OS_FILE_OPEN_TYPE_CREATE</b> = (1 &lt;&lt; 5), 
<br />
&#160;&#160;<b>OS_FILE_OPEN_TYPE_CREATE_EXCL</b> = (1 &lt;&lt; 6), 
<br />
&#160;&#160;<b>OS_FILE_OPEN_TYPE_DELETE</b> = (1 &lt;&lt; 7), 
<br />
&#160;&#160;<b>OS_FILE_OPEN_TYPE_CLOSE_ON_EXEC</b> = (1 &lt;&lt; 8)
<br />
 }</td></tr>
<tr class="separator:gaf79cb66b43257af42f5e75915c9d3b46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf479f66e1623df5edfa3e38f040f5088"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gaf479f66e1623df5edfa3e38f040f5088">OS_FILE_PERMISSION</a> { <br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_EXECUTE_OTHERS</b> = 0001, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_WRITE_OTHERS</b> = 0002, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_READ_OTHERS</b> = 0004, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_ALL_OTHERS</b> = 0007, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_EXECUTE_GROUP</b> = 0010, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_WRITE_GROUP</b> = 0020, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_READ_GROUP</b> = 0040, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_ALL_GROUP</b> = 0070, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_EXECUTE_USER</b> = 0100, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_WRITE_USER</b> = 0200, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_READ_USER</b> = 0400, 
<br />
&#160;&#160;<b>OS_FILE_PERMISSION_TYPE_ALL_USER</b> = 0700
<br />
 }</td></tr>
<tr class="separator:gaf479f66e1623df5edfa3e38f040f5088"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd4e4a1518bf251af4bfd2a8fe697026"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gacd4e4a1518bf251af4bfd2a8fe697026">OS_FILE_SEEK_TYPE</a> { <br />
&#160;&#160;<a class="el" href="group__OS__APIS__FILE.html#ggacd4e4a1518bf251af4bfd2a8fe697026ad8f6fe1321e15fe58a5cd567c55848b1">OS_FILE_SEEK_SET</a> = 0, 
<br />
&#160;&#160;<a class="el" href="group__OS__APIS__FILE.html#ggacd4e4a1518bf251af4bfd2a8fe697026a08f959b6f1eab2cc9f26b7e0123e9331">OS_FILE_SEEK_CUR</a> = (1 &lt;&lt; 0), 
<br />
&#160;&#160;<a class="el" href="group__OS__APIS__FILE.html#ggacd4e4a1518bf251af4bfd2a8fe697026a0502d9863939528bcba9fafa2e489466">OS_FILE_SEEK_END</a> = (1 &lt;&lt; 1)
<br />
 }</td></tr>
<tr class="separator:gacd4e4a1518bf251af4bfd2a8fe697026"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72758a31adaf5c4afde4341e70a848e7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga72758a31adaf5c4afde4341e70a848e7">OS_FILE_ATTRIBUTES</a> { <br />
&#160;&#160;<b>OS_FILE_ATTRIBUTES_NONE</b> = 0, 
<br />
&#160;&#160;<b>OS_FILE_ATTRIBUTES_EXIST</b> = (1 &lt;&lt; 0), 
<br />
&#160;&#160;<b>OS_FILE_ATTRIBUTES_REGULAR</b> = (1 &lt;&lt; 1), 
<br />
&#160;&#160;<b>OS_FILE_ATTRIBUTES_DIRECTORY</b> = (1 &lt;&lt; 2), 
<br />
&#160;&#160;<b>OS_FILE_ATTRIBUTES_SYMLINK</b> = (1 &lt;&lt; 3)
<br />
 }</td></tr>
<tr class="separator:ga72758a31adaf5c4afde4341e70a848e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b5104eac807de465009822c2b5d83cc"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga3b5104eac807de465009822c2b5d83cc">OS_PIPE_CREATE_FLAGS</a> { <br />
&#160;&#160;<b>OS_PIPE_CREATE_FLAGS_NONE</b> = 0, 
<br />
&#160;&#160;<b>OS_PIPE_CREATE_FLAGS_READ_SIDE_INHERITABLE</b> = (1 &lt;&lt; 0), 
<br />
&#160;&#160;<b>OS_PIPE_CREATE_FLAGS_WRITE_SIDE_INHERITABLE</b> = (1 &lt;&lt; 1)
<br />
 }</td></tr>
<tr class="separator:ga3b5104eac807de465009822c2b5d83cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga40b4d1b8edd74fb9f1a117d4e9765efd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga40b4d1b8edd74fb9f1a117d4e9765efd">OS_OpenFD</a> (const CHAR *path, INT flags, <a class="el" href="group__OS__APIS__FILE.html#gaba27a650028099cf71b43ff091ac2ca2">OS_FILE_PERMISSION_TYPE</a> mode, <a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *fd)</td></tr>
<tr class="separator:ga40b4d1b8edd74fb9f1a117d4e9765efd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga84a9342eec9a5358636f49ea2c817b43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga84a9342eec9a5358636f49ea2c817b43">OS_WriteFD</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, const VOID *buffer, USIZE *count)</td></tr>
<tr class="separator:ga84a9342eec9a5358636f49ea2c817b43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad90001eac7b50ec5a2df0e19484321f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gad90001eac7b50ec5a2df0e19484321f4">OS_ReadFD</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, USIZE *count, VOID *buffer)</td></tr>
<tr class="separator:gad90001eac7b50ec5a2df0e19484321f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23a588dc0dccb95913681fbb7a02d22b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga23a588dc0dccb95913681fbb7a02d22b">OS_SeekFD</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, INT whence, INT64 *offset)</td></tr>
<tr class="separator:ga23a588dc0dccb95913681fbb7a02d22b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c0fb2fdbfd986c4c5ad03f0237e56e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga2c0fb2fdbfd986c4c5ad03f0237e56e5">OS_CloseFD</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd)</td></tr>
<tr class="separator:ga2c0fb2fdbfd986c4c5ad03f0237e56e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf12497d2883236cddea461efcd1ff3c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gaf12497d2883236cddea461efcd1ff3c2">OS_DeleteFile</a> (const CHAR *name)</td></tr>
<tr class="separator:gaf12497d2883236cddea461efcd1ff3c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab62ec17a32d86493f24fbc83964d12b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gab62ec17a32d86493f24fbc83964d12b2">OS_FlushFD</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd)</td></tr>
<tr class="separator:gab62ec17a32d86493f24fbc83964d12b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga376c04250868ee7f9bcaefee08e4197c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga376c04250868ee7f9bcaefee08e4197c">OS_Stat</a> (const char *pathname, <a class="el" href="group__OS__APIS__FILE.html#ga111c9133a6edb2e9975e3a68ee2f6c2b">OS_STRUCT_STAT</a> *statbuf)</td></tr>
<tr class="separator:ga376c04250868ee7f9bcaefee08e4197c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1f15057e510f50c9041c5977c1ab3099"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga1f15057e510f50c9041c5977c1ab3099">OS_Fstat</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, <a class="el" href="group__OS__APIS__FILE.html#ga111c9133a6edb2e9975e3a68ee2f6c2b">OS_STRUCT_STAT</a> *statbuf)</td></tr>
<tr class="separator:ga1f15057e510f50c9041c5977c1ab3099"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaae4a329b11c2689d737a94b8e8c80338"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gaae4a329b11c2689d737a94b8e8c80338">OS_Lstat</a> (const char *pathname, <a class="el" href="group__OS__APIS__FILE.html#ga111c9133a6edb2e9975e3a68ee2f6c2b">OS_STRUCT_STAT</a> *statbuf)</td></tr>
<tr class="separator:gaae4a329b11c2689d737a94b8e8c80338"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac668ae6bc73afec7519aaf999118e7a2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gac668ae6bc73afec7519aaf999118e7a2">OS_GetFDAttributes</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, <a class="el" href="group__OS__APIS__FILE.html#ga72758a31adaf5c4afde4341e70a848e7">OS_FILE_ATTRIBUTES</a> *attr)</td></tr>
<tr class="separator:gac668ae6bc73afec7519aaf999118e7a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13d679b9085d6fa1db37b2816dc86bef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga13d679b9085d6fa1db37b2816dc86bef">OS_FilePermissionsFD</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, <a class="el" href="group__OS__APIS__FILE.html#gaba27a650028099cf71b43ff091ac2ca2">OS_FILE_PERMISSION_TYPE</a> *permissions)</td></tr>
<tr class="separator:ga13d679b9085d6fa1db37b2816dc86bef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga491827c8e00c29e9d0ba9a2ef9b3cd59"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga491827c8e00c29e9d0ba9a2ef9b3cd59">OS_FileSizeFD</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, USIZE *size)</td></tr>
<tr class="separator:ga491827c8e00c29e9d0ba9a2ef9b3cd59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a590d06769c84c9a60f48f9b5669c73"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga1a590d06769c84c9a60f48f9b5669c73">OS_Cwd</a> (CHAR *cwd, INT len)</td></tr>
<tr class="separator:ga1a590d06769c84c9a60f48f9b5669c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e58fdad8fb7819318047b3e835a8e02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga4e58fdad8fb7819318047b3e835a8e02">OS_Chdir</a> (const CHAR *dir, CHAR *cwd, INT len)</td></tr>
<tr class="separator:ga4e58fdad8fb7819318047b3e835a8e02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20fb89cc9569d6312fea52d24608baf2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga20fb89cc9569d6312fea52d24608baf2">OS_OpenDirFD</a> (const CHAR *name, <a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *fd)</td></tr>
<tr class="separator:ga20fb89cc9569d6312fea52d24608baf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga89de07f95f92263c15308eecfd5c2445"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga89de07f95f92263c15308eecfd5c2445">OS_MkDir</a> (const CHAR *name, <a class="el" href="group__OS__APIS__FILE.html#gaba27a650028099cf71b43ff091ac2ca2">OS_FILE_PERMISSION_TYPE</a> mode)</td></tr>
<tr class="separator:ga89de07f95f92263c15308eecfd5c2445"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaad7416af279aaf0f33279ce6d732f0ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gaad7416af279aaf0f33279ce6d732f0ad">OS_DeleteDirectory</a> (const CHAR *name)</td></tr>
<tr class="separator:gaad7416af279aaf0f33279ce6d732f0ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2dd6bf508fd9aeab2a371a3c1d4e285c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga2dd6bf508fd9aeab2a371a3c1d4e285c">OS_IsConsoleFD</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, INT *isConsole)</td></tr>
<tr class="separator:ga2dd6bf508fd9aeab2a371a3c1d4e285c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad067813c5642c1a4dfe3f8ea9ac9407c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gad067813c5642c1a4dfe3f8ea9ac9407c">OS_ReadDirectoryFD</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, USIZE *count, VOID *buffer)</td></tr>
<tr class="separator:gad067813c5642c1a4dfe3f8ea9ac9407c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabd5a0efabfd2ca004cb9ad6d1f0f8d2c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gabd5a0efabfd2ca004cb9ad6d1f0f8d2c">OS_GetFDAccessMode</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, <a class="el" href="group__OS__APIS__FILE.html#gaf79cb66b43257af42f5e75915c9d3b46">OS_FILE_OPEN_TYPE</a> *mode)</td></tr>
<tr class="separator:gabd5a0efabfd2ca004cb9ad6d1f0f8d2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91ad7341f68a52f66ab515afa4ac277b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga91ad7341f68a52f66ab515afa4ac277b">OS_ReadLink</a> (const CHAR *path, CHAR *buf, USIZE *size)</td></tr>
<tr class="separator:ga91ad7341f68a52f66ab515afa4ac277b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga38a707fb6f53313ee7c24d75caa51b63"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga38a707fb6f53313ee7c24d75caa51b63">OS_GetFileAttributes</a> (const CHAR *path, <a class="el" href="group__OS__APIS__FILE.html#ga72758a31adaf5c4afde4341e70a848e7">OS_FILE_ATTRIBUTES</a> *attr)</td></tr>
<tr class="separator:ga38a707fb6f53313ee7c24d75caa51b63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1b3420b3c0884a71cb7d00e010b43f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gac1b3420b3c0884a71cb7d00e010b43f0">OS_RenameFile</a> (const CHAR *oldPath, const CHAR *newPath)</td></tr>
<tr class="separator:gac1b3420b3c0884a71cb7d00e010b43f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad73f7448fc8ed37ea36dc1c049d9c513"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gad73f7448fc8ed37ea36dc1c049d9c513">OS_FileUniqueID</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, <a class="el" href="group__OS__APIS__FILE.html#gaf388a0f1cc1446b1e1ffca6907a2ffca">OS_FILE_UNIQUE_ID</a> *uniqueId)</td></tr>
<tr class="separator:gad73f7448fc8ed37ea36dc1c049d9c513"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52f300337dc22a38ba9a1a85ccf30221"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga52f300337dc22a38ba9a1a85ccf30221">OS_DuplicateFD</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, <a class="el" href="group__OS__APIS__TYPES.html#gad312c486942310e24394e7ea81f8f7e1">BOOL_T</a> dupCloseOnExec, <a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *outFd)</td></tr>
<tr class="separator:ga52f300337dc22a38ba9a1a85ccf30221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f5bd13714935b797d6e5dff17498c5f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga5f5bd13714935b797d6e5dff17498c5f">OS_Ftruncate</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd, INT64 length)</td></tr>
<tr class="separator:ga5f5bd13714935b797d6e5dff17498c5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3ebf7cd4998316c792a0665241187a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gaf3ebf7cd4998316c792a0665241187a1">OS_Realpath</a> (const char *path, <a class="el" href="group__OS__APIS__TYPES.html#gad312c486942310e24394e7ea81f8f7e1">BOOL_T</a> checkPathExistence, char *resolvedPath)</td></tr>
<tr class="separator:gaf3ebf7cd4998316c792a0665241187a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a8c9ca581cf49d6e1f02ec1b08d6aa8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga9a8c9ca581cf49d6e1f02ec1b08d6aa8">OS_ReportFileOpen</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd)</td></tr>
<tr class="separator:ga9a8c9ca581cf49d6e1f02ec1b08d6aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf948a39371c9cdee107de39b1b7f9b4b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gaf948a39371c9cdee107de39b1b7f9b4b">OS_ReportFileClose</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd)</td></tr>
<tr class="separator:gaf948a39371c9cdee107de39b1b7f9b4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga740450a1ad65dd8935ecb54262d6010d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga740450a1ad65dd8935ecb54262d6010d">OS_GetLowestFileDescriptorToUse</a> ()</td></tr>
<tr class="separator:ga740450a1ad65dd8935ecb54262d6010d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6fa2794665c242bfa118b3b9ae4712a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#ga6fa2794665c242bfa118b3b9ae4712a7">OS_RelocateAndReportFileOpen</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *fd)</td></tr>
<tr class="separator:ga6fa2794665c242bfa118b3b9ae4712a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff4103e9282c2a0ad0c5dce7414f74a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__TYPES.html#gad312c486942310e24394e7ea81f8f7e1">BOOL_T</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__FILE.html#gaff4103e9282c2a0ad0c5dce7414f74a3">OS_WasFileReportedOpen</a> (<a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> fd)</td></tr>
<tr class="separator:gaff4103e9282c2a0ad0c5dce7414f74a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gaba27a650028099cf71b43ff091ac2ca2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaba27a650028099cf71b43ff091ac2ca2">&#9670;&nbsp;</a></span>OS_FILE_PERMISSION_TYPE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef INT <a class="el" href="group__OS__APIS__FILE.html#gaba27a650028099cf71b43ff091ac2ca2">OS_FILE_PERMISSION_TYPE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Bit-mask of OS_FILE_PERMISSION's </p>

</div>
</div>
<a id="gaf388a0f1cc1446b1e1ffca6907a2ffca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf388a0f1cc1446b1e1ffca6907a2ffca">&#9670;&nbsp;</a></span>OS_FILE_UNIQUE_ID</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct__OS__FILE__UNIQUE__ID.html">_OS_FILE_UNIQUE_ID</a> <a class="el" href="group__OS__APIS__FILE.html#gaf388a0f1cc1446b1e1ffca6907a2ffca">OS_FILE_UNIQUE_ID</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Machine unique ID for file </p>

</div>
</div>
<a id="ga125af12a5b69613338937bddae2383dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga125af12a5b69613338937bddae2383dc">&#9670;&nbsp;</a></span>OS_PROCESS_WAITABLE_PROCESS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef UINT64 <a class="el" href="group__OS__APIS__FILE.html#ga125af12a5b69613338937bddae2383dc">OS_PROCESS_WAITABLE_PROCESS</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Opaque object that represents a process that we can wait for its termination </p>

</div>
</div>
<a id="ga111c9133a6edb2e9975e3a68ee2f6c2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga111c9133a6edb2e9975e3a68ee2f6c2b">&#9670;&nbsp;</a></span>OS_STRUCT_STAT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct__OS__STRUCT__STAT.html">_OS_STRUCT_STAT</a> <a class="el" href="group__OS__APIS__FILE.html#ga111c9133a6edb2e9975e3a68ee2f6c2b">OS_STRUCT_STAT</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>File status info </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga72758a31adaf5c4afde4341e70a848e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72758a31adaf5c4afde4341e70a848e7">&#9670;&nbsp;</a></span>OS_FILE_ATTRIBUTES</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OS__APIS__FILE.html#ga72758a31adaf5c4afde4341e70a848e7">OS_FILE_ATTRIBUTES</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>File permission modes </p>

</div>
</div>
<a id="gaf79cb66b43257af42f5e75915c9d3b46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf79cb66b43257af42f5e75915c9d3b46">&#9670;&nbsp;</a></span>OS_FILE_OPEN_TYPE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OS__APIS__FILE.html#gaf79cb66b43257af42f5e75915c9d3b46">OS_FILE_OPEN_TYPE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>File open modes </p>

</div>
</div>
<a id="gaf479f66e1623df5edfa3e38f040f5088"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf479f66e1623df5edfa3e38f040f5088">&#9670;&nbsp;</a></span>OS_FILE_PERMISSION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OS__APIS__FILE.html#gaf479f66e1623df5edfa3e38f040f5088">OS_FILE_PERMISSION</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>File access permission modes (not all enums apply in Windows) </p>

</div>
</div>
<a id="gacd4e4a1518bf251af4bfd2a8fe697026"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd4e4a1518bf251af4bfd2a8fe697026">&#9670;&nbsp;</a></span>OS_FILE_SEEK_TYPE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OS__APIS__FILE.html#gacd4e4a1518bf251af4bfd2a8fe697026">OS_FILE_SEEK_TYPE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>File seek modes </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggacd4e4a1518bf251af4bfd2a8fe697026ad8f6fe1321e15fe58a5cd567c55848b1"></a>OS_FILE_SEEK_SET&#160;</td><td class="fielddoc"><p>Offset is set to the given <b>offset</b> bytes. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacd4e4a1518bf251af4bfd2a8fe697026a08f959b6f1eab2cc9f26b7e0123e9331"></a>OS_FILE_SEEK_CUR&#160;</td><td class="fielddoc"><p>Offset is set to its current location plus <b>offset</b> bytes. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacd4e4a1518bf251af4bfd2a8fe697026a0502d9863939528bcba9fafa2e489466"></a>OS_FILE_SEEK_END&#160;</td><td class="fielddoc"><p>Offset is set to the size of the file plus <b>offset</b> bytes. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga3b5104eac807de465009822c2b5d83cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b5104eac807de465009822c2b5d83cc">&#9670;&nbsp;</a></span>OS_PIPE_CREATE_FLAGS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__OS__APIS__FILE.html#ga3b5104eac807de465009822c2b5d83cc">OS_PIPE_CREATE_FLAGS</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Pipes creation flags </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga4e58fdad8fb7819318047b3e835a8e02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4e58fdad8fb7819318047b3e835a8e02">&#9670;&nbsp;</a></span>OS_Chdir()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Chdir </td>
          <td>(</td>
          <td class="paramtype">const CHAR *&#160;</td>
          <td class="paramname"><em>dir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CHAR *&#160;</td>
          <td class="paramname"><em>cwd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INT&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Sets a new current directory. Optionally records the previous directory.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">dir</td><td>The directory to move to. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">cwd</td><td>Buffer to receive the CWD. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Max buffer length for cwd.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If current directory capture failed </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga2c0fb2fdbfd986c4c5ad03f0237e56e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2c0fb2fdbfd986c4c5ad03f0237e56e5">&#9670;&nbsp;</a></span>OS_CloseFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_CloseFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Closes <b>fd</b> and removes references to it from the process.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_CLOSE_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga1a590d06769c84c9a60f48f9b5669c73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1a590d06769c84c9a60f48f9b5669c73">&#9670;&nbsp;</a></span>OS_Cwd()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Cwd </td>
          <td>(</td>
          <td class="paramtype">CHAR *&#160;</td>
          <td class="paramname"><em>cwd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INT&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Retrieves size in bytes of <b>fd</b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">cwd</td><td>Buffer to receive the CWD. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">len</td><td>Max buffer length.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gaad7416af279aaf0f33279ce6d732f0ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaad7416af279aaf0f33279ce6d732f0ad">&#9670;&nbsp;</a></span>OS_DeleteDirectory()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_DeleteDirectory </td>
          <td>(</td>
          <td class="paramtype">const CHAR *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Deletes a directory.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Directory file name to delete.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded. </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_DELETE_FAILED</td><td>If the operation failed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gaf12497d2883236cddea461efcd1ff3c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf12497d2883236cddea461efcd1ff3c2">&#9670;&nbsp;</a></span>OS_DeleteFile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_DeleteFile </td>
          <td>(</td>
          <td class="paramtype">const CHAR *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Delete a file by name</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>File path.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_DELETE_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga52f300337dc22a38ba9a1a85ccf30221"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga52f300337dc22a38ba9a1a85ccf30221">&#9670;&nbsp;</a></span>OS_DuplicateFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_DuplicateFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gad312c486942310e24394e7ea81f8f7e1">BOOL_T</a>&#160;</td>
          <td class="paramname"><em>dupCloseOnExec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *&#160;</td>
          <td class="paramname"><em>outFd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Creates a copy of a file descriptor using the lowest available free file descriptor. This function considers the value returned from <a class="el" href="group__OS__APIS__FILE.html#ga740450a1ad65dd8935ecb54262d6010d">OS_GetLowestFileDescriptorToUse()</a> when duplicating the descriptor.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor to duplicate an ID. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dupCloseOnExec</td><td>TRUE to duplicate the close-on-exec property of the descriptor, FALSE otherwise. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">outFd</td><td>Result duplicated file descriptor.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPERATION_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga13d679b9085d6fa1db37b2816dc86bef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga13d679b9085d6fa1db37b2816dc86bef">&#9670;&nbsp;</a></span>OS_FilePermissionsFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_FilePermissionsFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#gaba27a650028099cf71b43ff091ac2ca2">OS_FILE_PERMISSION_TYPE</a> *&#160;</td>
          <td class="paramname"><em>permissions</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Retrieve the current permissions for the specified file.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">permissions</td><td>or'ed <a class="el" href="group__OS__APIS__FILE.html#gaba27a650028099cf71b43ff091ac2ca2">OS_FILE_PERMISSION_TYPE</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd>On Unix, will provide the user (not group/other) permissions.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga491827c8e00c29e9d0ba9a2ef9b3cd59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga491827c8e00c29e9d0ba9a2ef9b3cd59">&#9670;&nbsp;</a></span>OS_FileSizeFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_FileSizeFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE *&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Retrieves size in bytes of <b>fd</b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>Number of bytes.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gad73f7448fc8ed37ea36dc1c049d9c513"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad73f7448fc8ed37ea36dc1c049d9c513">&#9670;&nbsp;</a></span>OS_FileUniqueID()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_FileUniqueID </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#gaf388a0f1cc1446b1e1ffca6907a2ffca">OS_FILE_UNIQUE_ID</a> *&#160;</td>
          <td class="paramname"><em>uniqueId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get unique ID for an opened file, identified by a file descriptor. Two opened file descriptors for the same physical file are guaranteed to have the same unique ID.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor to calculate an ID. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">uniqueId</td><td>The calculate unique ID (opaque binary data)</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gab62ec17a32d86493f24fbc83964d12b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab62ec17a32d86493f24fbc83964d12b2">&#9670;&nbsp;</a></span>OS_FlushFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_FlushFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Flush the object referenced by the descriptor <b>fd</b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_FLUSH_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga1f15057e510f50c9041c5977c1ab3099"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1f15057e510f50c9041c5977c1ab3099">&#9670;&nbsp;</a></span>OS_Fstat()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Fstat </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#ga111c9133a6edb2e9975e3a68ee2f6c2b">OS_STRUCT_STAT</a> *&#160;</td>
          <td class="paramname"><em>statbuf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return information about the file pointed to by specified file descriptor in a buffer pointed to by statbuf.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>file descriptor. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">statbuf</td><td>Pointer to an information buffer about the file stats.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>In Windows, errno error might be different than expected since this function is not native to Windows.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga5f5bd13714935b797d6e5dff17498c5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5f5bd13714935b797d6e5dff17498c5f">&#9670;&nbsp;</a></span>OS_Ftruncate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Ftruncate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INT64&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Truncates a file referenced by fd to a size of length bytes. If the original file size is bigger than length, the extra data is lost. If the original file size is smaller than length,the file extended.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor to change his size. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>File new length.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPERATION_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows &amp; Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gabd5a0efabfd2ca004cb9ad6d1f0f8d2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabd5a0efabfd2ca004cb9ad6d1f0f8d2c">&#9670;&nbsp;</a></span>OS_GetFDAccessMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_GetFDAccessMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#gaf79cb66b43257af42f5e75915c9d3b46">OS_FILE_OPEN_TYPE</a> *&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get the permissions type requested when <b>fd</b> was opened. This is useful to check whether we can read or write <b>fd</b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor to check. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">mode</td><td>The permissions of the file descriptor.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded. </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gac668ae6bc73afec7519aaf999118e7a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac668ae6bc73afec7519aaf999118e7a2">&#9670;&nbsp;</a></span>OS_GetFDAttributes()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_GetFDAttributes </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#ga72758a31adaf5c4afde4341e70a848e7">OS_FILE_ATTRIBUTES</a> *&#160;</td>
          <td class="paramname"><em>attr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Query <b>fd's</b> file attributes</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">attr</td><td>File attributes</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga38a707fb6f53313ee7c24d75caa51b63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga38a707fb6f53313ee7c24d75caa51b63">&#9670;&nbsp;</a></span>OS_GetFileAttributes()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_GetFileAttributes </td>
          <td>(</td>
          <td class="paramtype">const CHAR *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#ga72758a31adaf5c4afde4341e70a848e7">OS_FILE_ATTRIBUTES</a> *&#160;</td>
          <td class="paramname"><em>attr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Query file attributes of the file denoted by <b>path</b> </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Path to file </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">attr</td><td>File attributes</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga740450a1ad65dd8935ecb54262d6010d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga740450a1ad65dd8935ecb54262d6010d">&#9670;&nbsp;</a></span>OS_GetLowestFileDescriptorToUse()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> OS_GetLowestFileDescriptorToUse </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Getter function to retrieve the lowest value of file descriptor that OS-APIs should use. OS-APIs will attempt to only use file descriptors which are larger or equal to the value that this function returns.</p>
<p>This function is implemented as a weak reference symbol so libraries linked with OS-APIs may provide their own implementation of this function and return a different value.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">Lowest</td><td>file descriptor to use.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga2dd6bf508fd9aeab2a371a3c1d4e285c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2dd6bf508fd9aeab2a371a3c1d4e285c">&#9670;&nbsp;</a></span>OS_IsConsoleFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_IsConsoleFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INT *&#160;</td>
          <td class="paramname"><em>isConsole</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Check whether a file descriptor is the application's console. A file descriptor is the application's console if:</p><ol type="1">
<li>The file of the underlying descriptor is a terminal device.</li>
<li>The terminal device is the tty master (or console) of the current application.</li>
</ol>
<p>The practical implication of a console file descriptor is that every write operation to it needs to be flushed right away because the user on the other side expects to see output immediately.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor to check. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">isConsole</td><td>non-zero if 'fd' is the application's console. Zero otherwise.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded. </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gaae4a329b11c2689d737a94b8e8c80338"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaae4a329b11c2689d737a94b8e8c80338">&#9670;&nbsp;</a></span>OS_Lstat()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Lstat </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pathname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#ga111c9133a6edb2e9975e3a68ee2f6c2b">OS_STRUCT_STAT</a> *&#160;</td>
          <td class="paramname"><em>statbuf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>identical to stat (see above), except that if pathname is a symbolic link, then the link itself is stat-ed, not the file that it refers to.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pathname</td><td>Path to the file. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">statbuf</td><td>Pointer to an information buffer about the file stats.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>In Windows, errno error might be different than expected since this function is not native to Windows.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga89de07f95f92263c15308eecfd5c2445"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga89de07f95f92263c15308eecfd5c2445">&#9670;&nbsp;</a></span>OS_MkDir()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_MkDir </td>
          <td>(</td>
          <td class="paramtype">const CHAR *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#gaba27a650028099cf71b43ff091ac2ca2">OS_FILE_PERMISSION_TYPE</a>&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Creates a directory.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Directory file name to create. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>File mode to create the directory.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded. </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_EXIST</td><td>Directory exists. </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation failed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga20fb89cc9569d6312fea52d24608baf2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga20fb89cc9569d6312fea52d24608baf2">&#9670;&nbsp;</a></span>OS_OpenDirFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_OpenDirFD </td>
          <td>(</td>
          <td class="paramtype">const CHAR *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *&#160;</td>
          <td class="paramname"><em>fd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Opens a directory for browsing.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Directory file name to open. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">fd</td><td>Pointer to returned file descriptor.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga40b4d1b8edd74fb9f1a117d4e9765efd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga40b4d1b8edd74fb9f1a117d4e9765efd">&#9670;&nbsp;</a></span>OS_OpenFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_OpenFD </td>
          <td>(</td>
          <td class="paramtype">const CHAR *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INT&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#gaba27a650028099cf71b43ff091ac2ca2">OS_FILE_PERMISSION_TYPE</a>&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *&#160;</td>
          <td class="paramname"><em>fd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The file name specified by path is opened for reading and/or writing, as specified by the argument <b>flags</b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>File path. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>or'ed <a class="el" href="group__OS__APIS__FILE.html#gaf79cb66b43257af42f5e75915c9d3b46">OS_FILE_OPEN_TYPE</a>. If mode <b>OS_FILE_OPEN_TYPE_CREATE</b> <br  />
 was given, the file is created with <b>mode</b>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>If a new file will be created as a result of this operation, this is the mode of this newly created file. This argument contains values from <a class="el" href="group__OS__APIS__FILE.html#gaba27a650028099cf71b43ff091ac2ca2">OS_FILE_PERMISSION_TYPE</a> combined with bitwise OR. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">fd</td><td>Returned file descriptor</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPEN_FAILED</td><td>If the operation Failed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><b>fd</b> - Assigned with the file descriptor<br  />
 </dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS*<br  />
 <b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gad067813c5642c1a4dfe3f8ea9ac9407c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad067813c5642c1a4dfe3f8ea9ac9407c">&#9670;&nbsp;</a></span>OS_ReadDirectoryFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_ReadDirectoryFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE *&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">VOID *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Attempts to read <b>count</b> bytes of data from the directory referenced by the descriptor <b>fd</b> to the buffer pointed to by <b>buffer</b>. A console file descriptor usually needs to be flushed after every read/write operation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">count</td><td>Bytes to read/Bytes read </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>Output buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_READ_FAILED</td><td>If the operation failed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><b>count</b> - Assigned with the number of bytes successfully read <br  />
 <b>buffer</b> - Contains <b>count</b> bytes that were read from <b>fd</b> <br  />
 </dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gad90001eac7b50ec5a2df0e19484321f4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad90001eac7b50ec5a2df0e19484321f4">&#9670;&nbsp;</a></span>OS_ReadFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_ReadFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE *&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">VOID *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Attempts to read <b>count</b> bytes of data from the object referenced by the descriptor <b>fd</b> to the buffer pointed to by <b>buffer</b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">count</td><td>Bytes to read </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>Output buffer</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_READ_FAILED</td><td>If the operation failed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><b>size</b> Assigned with the number of bytes successfully read <br  />
 <b>buffer</b> Contains <b>count</b> bytes that were read from <b>fd</b> <br  />
 </dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga91ad7341f68a52f66ab515afa4ac277b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga91ad7341f68a52f66ab515afa4ac277b">&#9670;&nbsp;</a></span>OS_ReadLink()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_ReadLink </td>
          <td>(</td>
          <td class="paramtype">const CHAR *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">CHAR *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE *&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Reads the symbolic link pointed by <b>path</b>. Returns the path that the symlink points to.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>Path to the symbolic link to read. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">buf</td><td>The path where the symlink points to. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">size</td><td>The number of bytes in <b>buf</b>, returns the number of bytes filled inside <b>buf</b>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded. </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gaf3ebf7cd4998316c792a0665241187a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf3ebf7cd4998316c792a0665241187a1">&#9670;&nbsp;</a></span>OS_Realpath()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Realpath </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gad312c486942310e24394e7ea81f8f7e1">BOOL_T</a>&#160;</td>
          <td class="paramname"><em>checkPathExistence</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>resolvedPath</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Expands all symbolic links or junction points and resolves references to '.', '..' and extra '/' characters in the null-terminated string named by 'path' to produce a canonicalized absolute pathname.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>path name. can be full or relative </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">checkPathExistence</td><td>if TRUE - function checks if the canonical path exists and returns NULL in case it does not. if FALSE - function returns the canonical path (regardless of it's existence) </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">resolvedPath</td><td>canonicalized absolute pathname</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPERATION_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows &amp; Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga6fa2794665c242bfa118b3b9ae4712a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6fa2794665c242bfa118b3b9ae4712a7">&#9670;&nbsp;</a></span>OS_RelocateAndReportFileOpen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OS_RelocateAndReportFileOpen </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a> *&#160;</td>
          <td class="paramname"><em>fd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Relocate the file descriptor to the range permitted according to <a class="el" href="group__OS__APIS__FILE.html#ga740450a1ad65dd8935ecb54262d6010d">OS_GetLowestFileDescriptorToUse()</a>, then record a file descriptor as opened by OS-APIs. Later, we allow to query whether a certain file descriptor was opened by OS-APIs or not.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">fd</td><td>File descriptor to relocate and record.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gac1b3420b3c0884a71cb7d00e010b43f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac1b3420b3c0884a71cb7d00e010b43f0">&#9670;&nbsp;</a></span>OS_RenameFile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_RenameFile </td>
          <td>(</td>
          <td class="paramtype">const CHAR *&#160;</td>
          <td class="paramname"><em>oldPath</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const CHAR *&#160;</td>
          <td class="paramname"><em>newPath</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Renamed the file <b>oldPath</b> to <b>newPath</b> </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">oldPath</td><td>Filename to rename </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">newPath</td><td>New filename to rename to</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_OPERATION_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gaf948a39371c9cdee107de39b1b7f9b4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf948a39371c9cdee107de39b1b7f9b4b">&#9670;&nbsp;</a></span>OS_ReportFileClose()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OS_ReportFileClose </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Record that a file descriptor opened by OS-APIs is not longer valid, and it is closed. Later, we allow to query whether a certain file descriptor was opened by OS-APIs or not.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor to record.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga9a8c9ca581cf49d6e1f02ec1b08d6aa8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9a8c9ca581cf49d6e1f02ec1b08d6aa8">&#9670;&nbsp;</a></span>OS_ReportFileOpen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OS_ReportFileOpen </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Record a file descriptor as opened by OS-APIs. Later, we allow to query whether a certain file descriptor was opened by OS-APIs or not.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor to record.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga23a588dc0dccb95913681fbb7a02d22b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga23a588dc0dccb95913681fbb7a02d22b">&#9670;&nbsp;</a></span>OS_SeekFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_SeekFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INT&#160;</td>
          <td class="paramname"><em>whence</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INT64 *&#160;</td>
          <td class="paramname"><em>offset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Reposition the offset of the file descriptor <b>fd</b> to the an offset in, the file denoted by offset. The offset is measured with relation to a starting point determined by the directive <b>whence</b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">whence</td><td><a class="el" href="group__OS__APIS__FILE.html#gacd4e4a1518bf251af4bfd2a8fe697026">OS_FILE_SEEK_TYPE</a> </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">offset</td><td>Bytes to move</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_SEEK_FAILED</td><td>If the operation failed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><b>offset</b> - Assigned with the number of bytes successfully read<br  />
 </dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga376c04250868ee7f9bcaefee08e4197c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga376c04250868ee7f9bcaefee08e4197c">&#9670;&nbsp;</a></span>OS_Stat()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_Stat </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pathname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__FILE.html#ga111c9133a6edb2e9975e3a68ee2f6c2b">OS_STRUCT_STAT</a> *&#160;</td>
          <td class="paramname"><em>statbuf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return information about the file pointed to by specified pathname in a buffer pointed to by statbuf.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pathname</td><td>Path to the file. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">statbuf</td><td>Pointer to an information buffer about the file stats.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_QUERY_FAILED</td><td>If the operation failed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>In Windows, errno error might be different than expected since this function is not native to Windows.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="gaff4103e9282c2a0ad0c5dce7414f74a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaff4103e9282c2a0ad0c5dce7414f74a3">&#9670;&nbsp;</a></span>OS_WasFileReportedOpen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__TYPES.html#gad312c486942310e24394e7ea81f8f7e1">BOOL_T</a> OS_WasFileReportedOpen </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Queries whether a certain file descriptor was opened by OS-APIs or not.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor to query.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
<a id="ga84a9342eec9a5358636f49ea2c817b43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga84a9342eec9a5358636f49ea2c817b43">&#9670;&nbsp;</a></span>OS_WriteFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_WriteFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gaeb77513b3223d163064c7b1f5e38e8c3">NATIVE_FD</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const VOID *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">USIZE *&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Attempts to write <b>count</b> bytes of data to the object referenced by the descriptor <b>fd</b> from the buffer pointed to by <b>buffer</b>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">fd</td><td>File descriptor </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">buffer</td><td>Data buffer </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">count</td><td>Bytes to write</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">OS_RETURN_CODE_NO_ERROR</td><td>If the operation succeeded </td></tr>
    <tr><td class="paramname">OS_RETURN_CODE_FILE_WRITE_FAILED</td><td>If the operation failed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><b>size</b> Assigned with the number of bytes successfully written<br  />
 </dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Windows, Linux &amp; macOS* <br  />
 <b>CPU:</b> All <br  />
</dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
